package sps.admin.module.business.workinghours.domain.vo;

import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

import lombok.Data;
import sps.base.common.json.serializer.DictValueVoSerializer;

/**
 * 工时功能 列表VO
 *
 * @Author yjg
 * @Date 2024-09-09 11:02:13
 * @Copyright v1.0
 */

@Data
public class WorkingHoursVO {


    @Schema(description = "主键ID")
    private Long workingHoursId;

    @Schema(description = "部门ID")
    private Long departmentId;

    @Schema(description = "部门名称")
    private String deptName;

    @Schema(description = "姓名")
    private String name;

    @Schema(description = "人员ID")
    private Long memberId;

    @Schema(description = "工作号")
    private Integer jobNumber;

    @Schema(description = "额外工作")
    private String extraWork;

    @Schema(description = "班别类型")
    @JsonSerialize(using = DictValueVoSerializer.class)
    private String banbieType;

    @Schema(description = "是否加班标识")
    private Integer overtimeFlag;

    @Schema(description = "就餐数")
    private Integer mealsNumber;

    @Schema(description = "时数")
    private String overtimeNumber;

    @Schema(description = "时数2")
    private String overtimeNumber2;

    @Schema(description = "加班原因")
    private String overtimeResult;

    @Schema(description = "加班日期")
    private LocalDate overtimeData;

    @Schema(description = "中午加班开始时间")
    private String noonStartOvertime;

    @Schema(description = "中午加班结束时间")
    private String noonEndOvertime;

    @Schema(description = "晚上加班开始时间")
    private String nightStartOvertime;

    @Schema(description = "晚上加班结束时间")
    private String nightEndOvertime;

    @Schema(description = "夜里加班开始时间")
    private String nightshiftStartOvertime;

    @Schema(description = "夜里加班结束时间")
    private String nightshiftEndOvertime;

    @Schema(description = "加班类型")
    @JsonSerialize(using = DictValueVoSerializer.class)
    private String overtimeType;

    @Schema(description = "是否允许加班")
    private Integer allowFlag;

    @Schema(description = "审批时间")
    private LocalDateTime allowTime;

    @Schema(description = "审批人")
    private String allowMember;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "建议加班1")
    private String timeparams1;

    @Schema(description = "建议加班2")
    private String timeparams2;

    @Schema(description = "建议加班3")
    private String timeparams3;

    @Schema(description = "人员列表")
    private List<String> memberIdList;

    @Schema(description = "人员名称列表")
    private List<String> memberNameList;

    @Schema(description = "部门IDs")
    private List<Long> departmentIds;

    @Schema(description = "创建者ID")
    private Long createUserId;

    @Schema(description = "创建者姓名")
    private String createUserName;

}